// Array de cores da tabela
var arrayCores = ['#B2C2D1', '#E8F6F6', '#E6E6E6', '#D1C2B2', '#EBD6EB', '#FFCCCC'];
var indiceCor = 0;

(function($) {
	$.buscaNomeCampos = function(options) {
		
		var config = {
			'tabelaBase' : false,
			'tabela'     : 'default'
		}

		if (options) {
			$.extend(config, options);
		}

		$.ajax({
			type: 'post',
			dataType: 'json',
			url: '../ajaxTabelasRelacionadas',
			data: {
				nomeTable: config.tabela
			}, 
			success: function(retorno) {

				// Monta os campos das tabelas relacionadas e da tabela base
				var boxCampos = '';
				for (nCampo in retorno.field) {
					// boxCampos += '<li class="boxCampoRelatorio" field="'+retorno.nomeTabela+'.'+nCampo+'" style="background: '+arrayCores[indiceCor]+'">'+retorno.nomeTabela+' | '+nCampo+'</li>';
					boxCampos += '<li style="background: '+arrayCores[indiceCor]+'"><label class="checkbox inline"><input class="checkAddCampo" type="checkbox" value="'+retorno.nomeTabela+'.'+nCampo+'" table="'+retorno.nomeTabela+'" />' + nCampo + '</label></li>';
				}

				// Se for a tabela base tem condições diferentes das tabelas ralacionadas
				if (config.tabelaBase) {
					var selectTabelaRelacionada = '<select class="dropDownTabelaRelacionada">';

					for (nTabela in retorno.tabelaRelacionada) {
						selectTabelaRelacionada += '<option value="'+nTabela+'">'+nTabela+'</option>';
					}
					selectTabelaRelacionada += '</select>';
					$('.tabelasRelacionadas').html(selectTabelaRelacionada);

					$('#camposDisponiveis').html(boxCampos);	
				} else {
					$('#camposDisponiveis').append(boxCampos);	
				}
				indiceCor++;
			}
		})

	};
})(jQuery);

$(document).ready(function() {

	// Change function na tabela base
	$('select[name="dropDownTabela"]').change(function() {

		if ($(this).val() != '') {

			// Reseta o indice de cor
			indiceCor = 0;

			$('.tabelasRelacionadas').html('Carregando...');

			$.buscaNomeCampos({
				'tabelaBase' : true,
				'tabela'     : $(this).val()
			})
		}
	})

	// Se no carregamento da pagina estiver algum campo selecionado
	if ($('select[name="dropDownTabela"]').val() != '') {

		$.buscaNomeCampos({
			'tabelaBase' : true,
			'tabela'     : $('select[name="dropDownTabela"]').val()
		})
	}

	// Change nas tabelas relacionadas
	$('.dropDownTabelaRelacionada').live('change', function() {
		$.buscaNomeCampos({
				'tabela' : $(this).val()
			})
	})

	// Insere os campos ao clicar nos campos disponiveis
	var countCampoSelecionado = 0;
	$('.checkAddCampo').live('click', function() 
	{

		if ($(this).is(':checked')) 
		{
			
			// clona a linha
			var linha = $('table.tbCampoRelatorio tr:first-child').clone();

			// Clona a tabela somente a partir do segundo campo selecionado na tabela
			if (countCampoSelecionado > 0) 
			{	
				// Insere a linha clonada
				$('table.tbCampoRelatorio tr:last-child').after(linha);
				// Remove o label
				linha.find('label').remove();
			}
			
			// Adiciona o valor do campo no campo "Nome"
			$('table.tbCampoRelatorio tr:first-child').find('.rCampoNome').val($(this).val());
			countCampoSelecionado++;

		} 
		else 
		{

		}

	})
})